Public Class listarEquipos

    Private idG As Integer
    Private nuevo As Boolean
    Private activo As Integer
    Private gestor As capaNegocios.Gestor = gestor.instanciar

    Public Sub cargarDatos(ByVal pidG As Integer, ByVal pactivo As Integer)
        Me.idG = pidG
        Me.activo = pactivo
        Me.cargarLista()
    End Sub

    Private Sub listarEquipos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.cargarLista()
        Me.cargarListaEstudiantesLibres()
        If (Me.activo = 0) Then
            Me.regEquipo.Visible = False
            Me.eliminar.Visible = False
            Me.incluirAlEquipo.Visible = False
            Me.desincluirAlEquipo.Visible = False
            Me.esNuevo.Visible = False
            Me.TextBoxNombre.ReadOnly = True
        End If
    End Sub

    Private Sub cargarLista()
        Dim datos As DataTable
        With gestor
            listaEquipos.Refresh()
            datos = .mostrarEquipos(Me.idG)
            ListaEquipos.DataSource = datos
            If (ListaEquipos.RowCount > 0) Then
                Me.eliminar.Enabled = True
                Me.TextBoxNombre.Enabled = True
            Else
                Me.eliminar.Enabled = False
                Me.TextBoxNombre.Enabled = False
                Me.desincluirAlEquipo.Enabled = False
                Me.VerDesglose.Enabled = False
            End If
        End With
    End Sub

    Private Sub cargarListaEstudiantesLibres()
        Dim da As DataTable
        da = gestor.mostrarEstudiantesSinEquipo(Me.idG)
        Me.listarEstudiantesLibres.DataSource = da
        If da.Rows.Count > 0 Then
            Me.incluirAlEquipo.Enabled = True
        Else
            Me.incluirAlEquipo.Enabled = False
        End If
    End Sub

    Private Sub cargarCampoNombre()
        Dim fila As Integer
        If listaEquipos.CurrentRow IsNot Nothing Then
            fila = listaEquipos.CurrentRow.Index
            Me.TextBoxNombre.Text = listaEquipos(1, fila).Value
        End If
    End Sub

    Private Sub mostrarEstudiantesEquipo()
        Dim fila, idEquipo As Integer
        Dim data As DataTable
        If listaEquipos.CurrentRow IsNot Nothing Then
            fila = listaEquipos.CurrentRow.Index
            idEquipo = CInt(listaEquipos(0, fila).Value)
            data = gestor.mostrarEstudiantesEquipo(Me.idG, idEquipo)
            Me.ListaEstudianteEquipo.DataSource = data
            If data.Rows.Count > 0 Then
                Me.desincluirAlEquipo.Enabled = True
            Else
                Me.desincluirAlEquipo.Enabled = False
            End If
        End If
    End Sub

    Private Sub cargarLista_Campos(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles listaEquipos.SelectionChanged
        Me.mostrarEstudiantesEquipo()
        Me.cargarCampoNombre()
    End Sub

    Private Sub cerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cerrar.Click
        Me.Close()
    End Sub

    Private Sub incluirAlEquipo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles incluirAlEquipo.Click
        Dim fila, filaEst, idEquipo, idE As Integer
        Try
            If listaEquipos.CurrentRow IsNot Nothing Then
                If Me.listarEstudiantesLibres.CurrentRow IsNot Nothing Then
                    fila = listaEquipos.CurrentRow.Index
                    idEquipo = CInt(listaEquipos(0, fila).Value)
                    filaEst = listarEstudiantesLibres.CurrentRow.Index
                    idE = CInt(listarEstudiantesLibres(0, filaEst).Value)
                    gestor.incluirEstudianteEquipo(Me.idG, idEquipo, idE)
                    Me.cargarListaEstudiantesLibres()
                    Me.mostrarEstudiantesEquipo()
                End If
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

    Private Sub escluirAlEquipo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles desincluirAlEquipo.Click
        Dim fila, idE As Integer
        Try
            If listaEquipos.CurrentRow IsNot Nothing Then
                If Me.ListaEstudianteEquipo.CurrentRow IsNot Nothing Then
                    fila = ListaEstudianteEquipo.CurrentRow.Index
                    idE = CInt(ListaEstudianteEquipo(0, fila).Value)
                    'MessageBox.Show(idE, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error)
                    gestor.escluirEstudianteEquipo(Me.idG, idE)
                    Me.cargarListaEstudiantesLibres()
                    Me.mostrarEstudiantesEquipo()
                End If
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

    Private Sub regEquipo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles regEquipo.Click
        Dim nombre As String
        Dim fila, idE As Integer
        Try
            nombre = CType(Me.TextBoxNombre.Text, String)
            If nuevo Then
                gestor.registrarEquipo(Me.idG, nombre)
                Me.TextBoxNombre.Clear()
                Me.esNuevo.Checked = False
            Else
                If listaEquipos.CurrentRow IsNot Nothing Then
                    fila = listaEquipos.CurrentRow.Index
                    idE = CInt(listaEquipos(0, fila).Value)
                    gestor.modificarEquipo(Me.idG, idE, nombre)
                Else
                    MessageBox.Show("No existe Equipos", "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error)
                End If
            End If
            Me.cargarListaEstudiantesLibres()
            Me.mostrarEstudiantesEquipo()
            Me.cargarLista()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

    Private Sub cambiarNombreBoton(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles esNuevo.CheckedChanged
        If Me.esNuevo.Checked Then
            Me.regEquipo.Text = "&Registrar"
            Me.nuevo = True
            Me.TextBoxNombre.Enabled = True
            Me.TextBoxNombre.Clear()
        Else
            Me.regEquipo.Text = "&Modificar"
            Me.nuevo = False
            If (listaEquipos.RowCount > 0) Then
                Me.TextBoxNombre.Enabled = True
            Else
                Me.TextBoxNombre.Enabled = False
            End If
            Me.cargarLista()
        End If

    End Sub

    Private Sub eliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles eliminar.Click
        Dim fila, idE As Integer
        Try
            If listaEquipos.CurrentRow IsNot Nothing Then
                If MessageBox.Show("Desea eliminar este equipo?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk) = Windows.Forms.DialogResult.Yes Then
                    fila = listaEquipos.CurrentRow.Index
                    idE = CInt(listaEquipos(0, fila).Value)
                    Me.gestor.eliminarEquipo(Me.idG, idE)
                    Me.mostrarEstudiantesEquipo()
                    Me.cargarLista()
                    Me.cargarListaEstudiantesLibres()
                End If
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

    Private Sub VerDesglose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VerDesglose.Click
        Dim nombre As String
        Dim idE As Integer
        Using desglose As New verDesgloseGrupal
            Dim fila As Integer = Me.listaEquipos.CurrentRow.Index
            nombre = CType(Me.listaEquipos(1, fila).Value, String)
            idE = CInt(Me.listaEquipos(0, fila).Value)
            desglose.cargarDatos(idE, Me.idG, nombre, Me.activo)
            If desglose.ShowDialog() = Windows.Forms.DialogResult.OK Then
            End If
        End Using
    End Sub
End Class